Interface device with tactile responsiveness

ABSTRACT

A method and apparatus implementing a user interface device, such as a mouse or trackball, having electronically controllable tactile responsiveness which is flexibly programmable. A user interface device effects positioning of a cursor within a limited area, such as on a display screen, with limits imposed by controllable tactile responsiveness. Programmable force-position characteristics relate the tactile responsiveness of the interface device to the position of the cursor within the limited area or on the display screen. In a described embodiment, the interface device includes at least two sets of wheels that move as the interface device is actuated. The at least two sets of wheels are aligned on mutually orthogonal axes. A servo motor is attached to each of the at least two sets of wheels. A position encoder is associated with each servo motor and outputs position information to a controller that has access to force-position relation information that is a function of a screen display on which the cursor is manipulated. The controller outputs a digital signal, in accordance with the force-display position relation information. The digital signal is converted to an analog current signal applied to the servo motor(s) to generate force in the servo motor. The force, presenting a tactile response to a human interacting with the user interface device, is perceived as a resistance, tactile pressure or lack thereof, or as a positive, assisted motion which is indicative of position on a screen display.

This is a continuation of of prior U.S. application Ser. No. 09/253,392,filed on Feb. 19, 1999, now U.S. Pat. No. 6,876,891 which is acontinuation of U.S. patent application Ser. No. 08/585,198, filed Jan.11, 1996, issued as U.S. Pat. No. 5,889,670, incorporated herein byreference, which is a continuation-in-part of U.S. patent applicationSer. No. 08/434,176, filed May 3, 1995, issued as U.S. Pat. No.5,559,412, which is a continuation of U.S. patent application Ser. No.08/076,344, filed Jun. 11, 1993, issued as U.S. Pat. No. 5,414,337,which is a continuation-in-part of U.S. patent application Ser. No.07/783,635, filed Oct. 24, 1991, issued as U.S. Pat. No. 5,220,260.

FIELD OF THE INVENTION

The present invention relates to user interface devices and inparticular to devices providing tactile responsiveness and havingprogrammable force-position profiles defining tactile responsiveness inmanipulating a cursor on a screen display.

BACKGROUND OF THE INVENTION

In numerous contexts humans perform tasks by interacting with machinesvia actuators having knobs, dials or linear actuators. Such humaninteraction in many instances becomes conditioned upon theresponsiveness of the actuator. The human operator interacts inaccordance with tactile feedback perceived through contact with theactuator knobs, dials or handles.

For example, in video or film editing using systems as described in U.S.Pat. Nos. 4,937,685 and 4,964,004 which are incorporated herein byreference, an editor edits video image information at a console having aplurality of “control wheels”(i.e. large dials or knobs). The film orvideo editor controls operation of a composition system from anoperator's console, as illustrated in FIG. 1, using two sets ofcontrols, one for each hand, to control the editing process. Eachcontrol set includes a plurality of finger switches or pushbuttons 110clustered proximate to a large rotatable control wheel 112, facilitatingtactile operation with minimal hand movement. As the editor is focussingon at least one video monitor, viewing frames of visual source materialduring the editing function, it is generally the case that the operatorwill acquire a feel for the various controls and become acclimated totheir functionality through tactile feedback therefrom, rather thanhaving to look at the control wheel(s) for visual feedback. Accordingly,more efficient human interaction with, and sensitivity to thecomposition system is achieved.

The control wheels 112 exhibit tactile responsiveness, such as detentsor clicks, as they are rotated. Typically, a full rotation of the wheel112 is correlated to a unit of time, such as one second, of viewing thevisual source material being edited. A corresponding number of “frames”of visual source material will be viewed during such a time period,depending on the medium or type of source material being edited. It ismost desirable that the number of frames of source material becorrelated to the tactile responsiveness, i.e. number of clicks, of thewheel 112 during rotation. For instance, film editing involvesstandardized source material of which twenty-four (24) frames areprovided per second. Thus, it is most desirable that in a full rotationof the wheel 112 (presenting one second of source material), the wheelrespond with twenty-four (24) clicks, each click corresponding to oneframe of the visual source material.

While film editing involves source material having twenty-four (24)frames per second, other video medium standards require different framerates. The frame rate, or number of frames per second according to theNational Television System Committee (NTSC) is thirty (30) frames persecond, a standard promulgated for television video in the UnitedStates. Standards such as PAL and SECAM provide for a standard framerate of twenty-five (25) frames per second in England and Francerespectively. New standards for high definition television specify aframe rate of thirty (30) or sixty (60) frames per second.

Differing frame rate standards relating to visual source material andthe nature of mechanical detents in actuators, presents the problem thatmultiple actuators are required to facilitate correlation betweenactuator tactile responsiveness and the various visual source materialstandards. As illustrated in FIG. 1 a, actuators known in the art forproviding tactile responsiveness typically incorporate a mechanicaldetent mechanism. A fixed number of clicks is provided by a springloaded friction mechanism 111 coacting with a sprocket 113 having afixed number of cogs or detents corresponding to the desired number ofclicks per revolution. Therefore, an actuator having twenty-four fixeddetents is required and dedicated for a film editing context, a thirtydetent actuator is required for a NTSC video editing system, a twentyfive detent actuator is required in the PAL or CCAM video editingcontext, etc. The plurality of actuators required limits the flexibilityof visual source material composition systems and significantlyincreases the complexity, cost and hardware requirements of a flexiblesystem.

In addition to the lack of flexibility of use of fixed mechanical detentactuators, such actuators disadvantageously become worn and suffertactile responsiveness degradation over time. Other mechanically/springloaded linear or rotary actuators suffer similar deficiencies.

Likewise, other types of actuators or user interface devices are knownfor permitting users to interact with electronic devices, such aspersonal computers. Such user interface devices, like a trackball ormouse as disclosed in U.S. Pat. No. 4,868,549 (“the '549 patent”), mayinclude tactile responsiveness in the form of resistance to movement ofthe device as the device is actuated and the cursor moves acrosspredetermined areas of the display screen.

In the '549 patent a mouse is disclosed which has an electromagneticmeans, in the form of an electromagnet in conjunction with a magneticsurface or an electromagnetic brake, which provides resistance to themovement of a “spherical ball pickup”. Feedback or tactileresponsiveness is achieved in one embodiment by controlling the degreeof sliding friction between a magnetic portion of the mouse and amagnetic pad surface on which the mouse must be actuated.Disadvantageously, the magnetic pad surface is a requirement in such anembodiment, and the friction forces between the pad and the mouse may beaffected in ways that may not be predictable and might be detrimental tothe tactile responsiveness.

In another embodiment in the '549 patent, an electromagnetic brake isincluded and resistance is provided by the brake directly to thespherical ball or tracking element. The braking mechanism is totallyself-contained within the mouse eliminating the need for a magnetic padsurface. However, while the electromagnetic brake provides a stoppingmechanism, it cannot provide a continuous torque to the trackingelement, i.e. no torque is applied when the tracking element is stopped.Such a mechanism cannot be used to change tactile responsiveness, e.g.to decrease resistance, as a function of characteristics of a particularscreen display. The resistance provided is only opposed to motion andcannot aid motion by actively driving the ball to facilitate ease ofmotion in certain display areas or to keep the cursor off of theboundary of a restricted display area.

SUMMARY OF THE INVENTION

The present invention provides an actuator having electronicallycontrollable tactile responsiveness which is flexibly programmable tofacilitate provision in a single actuator of torque-positioncharacteristics, such as a selectable number of detents per actuationthrough its full operative path. In an illustrative case of a rotaryactuator the present invention facilitates provision in a singleactuator, of torque versus angular position characteristics, such as aselectable number of detents per revolution.

According to the invention, an actuator is in communication with a servomotor having a position encoder which outputs position information to acontroller that has access to torque-position relation information. Theoutput of the controller is a digital torque signal, in accordance withthe torque-position relation information, which is converted to ananalog current signal applied to the servo motor to generate torque inthe servo motor. The torque, presenting a tactile response to a humaninteracting with the actuator, is sensed as a detent or a plurality ofdetents.

In further accord with the invention, the controller is a microprocessorwhich receives position information, from the encoder, through a counteras a position count. Torque-position relation information is stored inmicroprocessor accessible firmware as a table containing a series ofparticular torque values corresponding to a series of particularposition values. The torque values, output as digital signals andconverted by a digital to analog converter, can be modified inaccordance with a plurality of stored torque versus position tables tofacilitate flexible programming of various torque profiles.

Features of the invention include the capacity to store and modifytorque profiles and to select one of a predetermined set of torqueprofiles to provide an actuator with a desired tactile responsiveness.The torque profiles, stored for example, in electrically erasableprogrammable read only memory can be changed via a computer incommunication with the microprocessor. Upon system power down andsubsequent power up, a previously entered torque profile can be presentas a default profile.

In a further embodiment of the invention, a user interface device, suchas a trackball or mouse, is provided and implemented with programmabletactile responsiveness. In a mouse or trackball embodiment, the deviceincludes an interface mechanism comprised of at least two sets of wheelsthat move as a spherical ball or tracking element is actuated by a user.The wheels are aligned on mutually orthogonal axes and each of at leasttwo sets of wheels has a servo motor attached thereto and a positionencoder associated with each servo motor. Position information from theposition encoder is received by a controller that has access to tactileforce information, i.e. torque-display position information.

The torque-display position information relates a position or coordinateof a display entity or cursor on a display screen of an electronicdevice to a force or torque applied to the user interface device,effecting tactile responsiveness of the user interface device as afunction of the display screen on which the display entity or cursor ismanipulated. The controller, having received the display entity orcursor position information from the position encoders, generates anoutput which is a digital signal in accordance with the force-displayposition relation information. The force can be positive or negative, toassist or resist motion. In a disclosed embodiment, a digital torquesignal output in accordance with torque-display position information isconverted via a digital to analog converter, to an analog current signalwhich is applied to servo motors to generate torque in the servo motors.The torque generated in the servo motors is translated to the trackingelement or ball of the user interface device and perceived by the useras tactile responsiveness that is a function of the position of thecursor on the screen display.

Features of the invention include the capability to effect tactilescreen boundaries, and “walls” and “troughs” which correspond to buttonbar functions or icon placement on a drag-down menu, by increasing anddecreasing resistance to further manipulation of the interface device bythe user, or by aiding motion of the device. “Bumps” and other texturescan be implemented on the screen display and tactilely perceived as thecursor is moved. Cell boundaries can be defined by hard stops or “hills”which a cursor will roll off to limit access to screen areas orotherwise provide an indication of cursor position without requiring theuser to look at the screen. Different tactile response profiles can bestored to correspond to different screen displays and user applications.Physically impaired people can interface to computer applicationswithout the need for sight or fine motor skills.

DESCRIPTION OF THE DRAWING

These and other features and advantages of the present invention willbecome more apparent in view of the following detailed description inconjunction with the accompanying drawing, of which:

FIG. 1 is an illustration of an operator's console for editing visualsource material in a composition system;

FIG. 1 a is a partially broken-away view of an actuator according to theprior art having mechanical detents;

FIG. 2 is a block diagram of a system for providing programmable tactilefeedback in an actuator;

FIG. 3 is a block diagram of a system for providing programmable tactilefeedback in an actuator, wherein the controller comprises a counter,microprocessor and accessible firmware;

FIG. 3 a is an illustrative diagram of an actuator and associatedfunction keys for controlling multiple functions and providing multipletactile responses in accordance with the selected function;

FIG. 4 is a block diagram of a system for providing programmable tactilefeedback in an actuator, wherein the system further includes atachometer sensing motor actuation to generate a corresponding actuationin an associated actuator;

FIG. 5A is a view of a prior art mechanical means for introducingresistance in an exercise machine;

FIG. 5B is a block diagram illustrating implementation of a torquecontroller according to the invention implemented in an exercisemachine;

FIG. 6 is a block diagram of a joystick implementation of an actuatorwith electronically controllable tactile responsiveness; and

FIG. 7 is a perspective view, partially broken away, of a trackballimplementation of a user interface device according to the invention;

FIGS. 8A and 8B are front and side views, respectively, of a wheelassembly implemented in the trackball of FIG. 7;

FIG. 9 is a plan view of the wheel assembly of FIGS. 8A and 8B attachedto a motor and encoder assembly;

FIG. 10 is a diagrammatic representation of a pair of wheel sets havingmotors and encoders associated therewith, and contacting the trackingelement;

FIG. 10A is a diagrammatic representation of a wheel set disposed for athird axis (z-axis) responsiveness;

FIG. 11 is a diagrammatic representation of a user interface deviceaccording to the invention configured to interface to a personalcomputer;

FIG. 12 is a block diagram of a system according to the invention; and

FIGS. 13A-13D show a user interface screen and profiles for tactileresponsiveness implemented to effect characteristics of the screen.

DETAILED DESCRIPTION OF AN ILLUSTRATIVE EMBODIMENT

Referring now to FIG. 2, an actuator, such as a rotary actuator having acontrol knob 114 is attached via a shaft to a servo motor 116. In thisillustrative embodiment wherein the actuator is for use in a film/videoediting context, the servo motor is a PMI 12FVS motor. In the presentapplication, as discussed in greater detail hereinafter, the servo motoris not used as a motor per se, but rather as a torque controller. Themotor never runs at a significant amount of its rated revolutions perminute, but operates normally in this application in a stalled orsemi-stalled state. The preferred motor 116 has an installed encoder118. The encoder 118 is a PMI M23, 300 segment modular encoder having anindex and providing 300 cycles per revolution, which results in 1200waveform edges from index to index. Note that in this illustrativeembodiment it is important that the encoder be selected to provide anumber of edges which is divisible by factors of two, three, five andeight. Thus, position information can be electronically divided toprovide an integer number of clicks in selectable modes of 24, 25 and 30positions per revolution (corresponding to the film/video editingstandards of 24, 25 and 30 frames per second or revolution, as discussedhereinbefore).

The position information received from the encoder 118 is processed by acontroller 120 so that it represents a positional count. The controller120 accesses stored input data 122 in the form of torgue-positionrelation information which correlates a received position count with arelated torque value. As noted hereinbefore, the position count, whichis a function of encoder output information, can be derived byelectronically dividing position information provided by the encoderwaveform, as desired into a selected number of positions or positionvalues. The input data 122 accessed by the controller 120 will havestored torque values associated with the selected position values asprovided in accordance with the desired torque profile. The controller120 outputs the torque value as a digital signal which is converted by alatchable digital to analog converter 124 to an analog voltage. As avoltage applied to the motor would result in a proportional motor speed,the analog voltage is related to motor torque by generating aproportional motor current using a power amplifier 126 in conjunctionwith a motor power supply 128. The torque related current is applied tothe motor 116 to present the desired torque which imparts the desiredtactile responsiveness to the control knob 114.

In an embodiment illustrated in FIG. 3, the controller 120 comprises acounter 130 which receives the servo motor position information from theencoder 118. A microprocessor 132, such as a Motorola 6809, receives aposition count from the counter 130 providing an indication of servomotor position relative to the index. The count provided by the counterwill increment or decrement depending on the direction of the change ofposition of the servo motor. The microprocessor accesses electricallyerasable programmable read only memory 134 (EEPROM) which is programmedwith one or more tables of torque-position relation information. Eachtable defines a particular torque profile specifying a torque valuecorresponding to a particular position count (i.e. knob/servo motorposition).

A main application CPU 136 runs an application which requires anddefines particular torque profiles for the actuator 114. The mainapplication CPU may run an application which defines the functionalityof a control wheel and related function buttons as illustrated in FIG. 3a. In this illustrative embodiment the control wheel has an outer dial140 which according to the application performs a first function havinga fixed number of positions, such as selecting one of a plurality ofswitch settings. The application can assign a second function to thesame outer dial 140 and provide a profile assigning an alternativeresponsiveness to the outer dial actuator, such as assigning a levercontrol function having electronically defined stop positions, when ashift key 142 is depressed. An inner control knob 144 similarly can beassigned a first function and corresponding torque profile (such as afree running -non-detent scan function), by the application running onthe main application CPU, and a second (or other) function andcorresponding torque profile (such as a 30 detent per rotation editmode, as discussed hereinbefore), which is invoked such as by depressingan alt key 146.

The main application CPU 136, upon application initialization, downloads the desired torque profiles to the microprocessor accessibleEEPROM, via an RS-232 serial, or other communication port. The desiredtorque profiles reside in EEPROM and are selectable via themicroprocessor for providing the desired torque at the appropriateactuator position(s) in accordance with the requirements of the mainapplication. A desired torque profile can be selected by a useroperating the control knob 144 or outer dial 140 actuators, alone orwith other control functions such as the alt or shift keys, to beresponsive in accordance with the first or second function. A change inactuator function, and a corresponding change in actuator responsiveness(i.e. torque profile) can be effected via selected key strokes, such asa shift key or function key implementation discussed.

The EEPROM resident tables will not change until a new set of profilesis programmed, i.e down loaded, into the microprocessor accessiblememory. Thus, when the system is powered down and subsequently poweredup, the previously selected torque profile is resident and available asa default mode for the respective actuators.

As illustrated in FIG. 4, the selectable torque profiles and tactileresponsiveness of the actuator according to the invention can beimplemented so that a second actuator 150 is responsive to a firstactuator 114′, operating substantially as discussed hereinbefore. Incertain operations it is desirable to have two actuators working inconjunction according to a common torque profile. In such a case, theservo motor of one actuator can be used to actually drive a secondmotor, in addition to its function as a torque controller.

For instance, it is desirable when editing film, to turn the firstactuator 114′ to add one or more frames to one end of the compositionmaterial while removing one or the same number of frames from anopposite end of the composition material controlled by the secondactuator 150. In such a case, rather than trying to turn the respectivecontrol knobs exactly the same amount, it would be best to have thesecond actuator 150 respond according to the first actuator 114′ and itsassociated torque profile.

As the first actuator 114′ is manually rotated N clicks as sensedaccording to its torque profile implemented as discussed hereinbeforewith respect to FIG. 3, the encoder 118′ and a tachometer 152 associatedwith the first actuator 114′ indicate the direction and speed,respectively, of the first actuator 114′ to the microprocessor 132′. Thedirection and position of the first actuator 114′ is received from theencoder 118′ through the counter 130′. The rate of change of position,i.e. velocity, is indicated by the tachometer 152 as an analog signal,which must be converted by an analog to digital converter 154 forprocessing digitally by the microprocessor 132′. The microprocessor132′, in accordance with the count received from the first actuator 114′and a velocity profile, generates a digital signal which is delivered tothe second actuator digital to analog converter 156 and converted to ananalog signal, increasing power to a second actuator servo motor 158.The power increase to the second actuator servo motor 158 results in anactuation of the second motor in a direction according to the directionsensed, and according to an operation directed by the microprocessor.The microprocessor monitors a second actuator encoder 160 to read acomplementary count from the second actuator 150 being driven, andmonitors a second actuator tachometer 160 to sense a velocity comparableto that of the first actuator being manually actuated. When thecomparisons indicate that the second actuator is actuated in accordancewith the manual actuation of the first actuator, the operation iscomplete.

While the implementation of a driven actuator describes a tachometer fordetermining velocity of the actuators, it will be appreciated thatvelocity can be derived by the microprocessor using a mathematicaloperation which takes the first derivative of the rate of change ofposition information, eliminating the need for a tachometer. Further,although a motor power supply is indicated in FIG. 4 for each servomotor, it can be appreciated that a single power supply can be used forboth motors.

Although the invention is described herein in the context of an actuatorin a film/video editing context, one of ordinary skill in the art willappreciate that selectably programmable tactile responsiveness accordingto the invention can be provided in many contexts in which modeselection of tactile responsiveness is desirable.

While the actuator having electronically controllable tactileresponsiveness is described herein as providing a selectable number ofdetents or clicks per rotation of a control wheel, it can be appreciatedthat other torque profiles, such as progressively increasing torque inone direction or another or increasing torque to a point of a pseudohard stop, can be achieved according to the invention by introducing atorque profile which results in an appropriate current applied to theservo motor.

Further, although programmable tactile responsiveness is described inthe context of a rotary actuator application, it will be appreciatedthat selectable tactile responsiveness can be implemented according tothe invention in other applications and actuator contexts, such as inlinear actuator contexts.

Referring now to FIGS. 5A and 5B, it will be appreciated by those ofordinary skill in the art in view of the foregoing, that theelectronically controllable tactile responsiveness according to theinvention can be implemented in actuators other than knob type actuatorsand in contexts other than video or film editing contexts. Variousexercise machines have mechanisms for providing resistance, such as themechanism illustrated in FIG. 5A. The linear motion of an exerciserpulling alternately on the handles 300, 302 of FIG. 5B is translated andimparts a rotary motion to a take-up spool 304 (FIGS. 5A and 5B). Inknown exercise machines, resistance is introduced at the take-up spoolby tightening a mechanical/spring mechanism 306 (FIG. 5A) whichincreases the work required to impart linear motion to the handles 300,302. The system according to the invention and described hereinbeforecan be implemented in such a context by introducing a bidirectionalservomotor 308 (FIG. 5B) which is adapted to receive bidirectionaltorque versus position information in the form of current profilesresulting in resistance similar to that introduced by the mechanicalmeans of 306 of FIG. 5A. The current provided by the torque controller310 is a function of torque adjust profiles 312 which areselectable/programmable and stored in a manner as discussedhereinbefore.

Similarly, referring now to FIG. 6, programmable tactile responsivenesscan be implemented in an actuator such as a joystick actuator 400. Insuch a context, torque profiles are stored in tables within a torquecontroller 402 in the form of at least two tables for containingprofiles to control motors in at least two axes. A first servo motor 403is attached to a sphere 404 to which a joystick 406 is fixed. The firstmotor 403 is fixed to the sphere 404 to which the joystick is fixed andcontrols the tactile responsiveness of the joystick 406 as it islinearly actuated in directions indicated by the arrow A-B. The linearmotion of the joystick in the direction A-B is translated into a rotarymotion by a shaft 408 forming an axis about which the joystick 406rotates in a limited manner. The torque controller 402 contains at leastone profile table that determines the current provided to the firstservo motor 403 and ultimately determines the particular responsivenessof joystick 406 as it is actuated in directions A-B.

A second servo motor 410 is mounted to a fixed frame or surface 412 andcontrols responsiveness of the joystick 406 as it is actuated in thedirection indicated by arrow C-D. An assembly comprised of the sphere404, joystick 406 and first motor 403 is capable of limited rotationabout an axis formed by a shaft 414 which is connected at a first end tothe second motor 410 and at a second end to a bearing 416. As thejoystick 406 is actuated in the direction C-D, the sphere 404, and firstmotor 403 to which the joystick 406 is attached is actuated having aresponsiveness as determined by at least a second profile table storedin the torque controller 402.

Although the illustrative embodiments of the exercise implementation andjoystick implementation describe controlled tactile responsiveness in asingle axis and double axis context respectively, it will be appreciatedby those of ordinary skill in the art that tactile responsiveness can beimplemented in a plurality of axes greater than 2.

Furthermore, it will be appreciated by those of ordinary skill in theart that various mechanisms, such as the spool of the exerciserimplementation, are useful for translating torque into linear forceand/or linear force into rotational torque, and that the tablesdiscussed hereinbefore while containing torque versus position profilescan be programmed to comprise force versus linear position profiles.

Referring now to FIGS. 7-9, a user interface device can be implementedaccording to the invention, to include tactile responsiveness as afunction of the position of a display entity, e.g. cursor, on a screendisplay. In this illustrative embodiment a trackball 500 is implementedincluding a plurality of sets of drive wheels 502 which contact atracking member or ball 504. As will be understood by those of ordinaryskill in the art, manipulation of the tracking member or ball 504effects manipulation or movement of a cursor on a screen display (notshown in FIGS. 7-9). The details of construction and manufacture of atrackball and/or mouse implementation will be understood by those ofordinary skill in the art, and therefore will not be presented hereother than to present significant components and theirinterrelationships.

In this illustrative embodiment, the tracking member or ball isinterconnected in the user interface device by an interconnectionmechanism comprised of sets of drive wheels. Each of the sets of drivewheels 502, best illustrated in FIGS. 8A and 8B, is comprised of a hub506 about which at least one frame structure 508 is configured. Theframe(s) 508 have a plurality of frame portions each extendinglongitudinally through a respective one of a plurality of barrel-shapedgripping members 510. Preferably, the outside radius of a large portionof the gripping members 510 is equal to the outside radius of the drivewheels 502. Two drive wheels are used, offset slightly, to make thecontact with the ball 504 smooth so as to avoid a “bumpy” feeling as theball 504 is actuated and in turn actuates the wheels 502. The grippingmembers are each rotatable around the frame portion that extends throughand supports it. The gripping members 510 are made of a polymericmaterial suitable for establishing gripping contact with the ball 504.In this illustrative embodiment, as illustrated in FIG. 8A, two frames508 are configured about the hub 506. The gripping members 510 areoffset or staggered in order to compensate for gaps between grippingmembers on a respective frame, to maintain a gripping member in contactwith the ball 504 at all times.

Each pair of frames 508 attached to a common hub 506 and with associatedgripping members 510, constitutes a wheel set that is attachable, asillustrated in FIG. 9, to a servo motor 512 and encoder 514 to form adrive/position assembly 516. In this illustrative embodiment thedrive/position assembly servo motor is used actively as a motor. Theservo motor may be a Pittman Model No. 8322 (manufactured by Pittman,Harleysville, Pa.), which optionally comes with an integrated opticalencoder which fulfills the encoder requirement. At least onedrive/position assembly 516 is configured to apply torque and senseposition along a respective one of mutually orthogonally disposed axes,e.g. an x-axis corresponding to cursor movement across a display screen,a y-axis orthogonally disposed with respect to the x-axis andcorresponding to cursor movement up and down on a screen, and a z-axisorthogonally disposed with respect to the x and y axes and correspondingto cursor movement in and out of a screen in a three dimensionalconfiguration. In some instances, as described hereinafter, a wheel setis attached to a motor without an encoder, or just a bearing 518 toimplement a complementary slave assembly 520 when it may not bedesirable to include additional servo motors and/or encoders. Thereferenced servo motor, without an encoder, may be employed passively asa bearing.

To implement a two dimensional user interface device, e.g. trackball ormouse, the tracking element or ball 504 is configured to have at leasttwo drive/position assemblies 516 positioned with the gripping members510 in contact with the ball. As illustrated in FIG. 10, a firstdrive/position assembly 516 is positioned with the gripping members ofits wheel set in contact with the ball, and includes a servo motor andencoder. A first complementary slave assembly 520 is positioned opposedto the first drive/position assembly 516 and has gripping members of itswheel set engaging the side of the ball 504 opposite the firstdrive/position assembly 516.

A second drive/position assembly 516′ is positioned on an axisorthogonal with respect to the first drive/position assembly 516 and hasa servo motor and encoder attached thereto. A second complementary slaveassembly 520′ is positioned opposed to the second drive/positionassembly 516′ and has gripping members of its wheel set engaging theside of the ball 504 opposite the second drive/position assembly 516′.In the illustrative two dimensional implementation, the complementaryslave assemblies include motors that are slaved to the motors of thedrive/position assemblies. Such slaved motors produce a complementarytorque to assist the drive/position assemblies in applying a morebalanced torque to the ball. It will be appreciated that a lessexpensive device can be implemented according to the invention by merelyhaving the wheel sets opposed to the drive/position assembliesconfigured with a bearing to passively engage the ball.

As illustrated in FIG. 10A, in implementing a three dimensional userinterface device according to the invention, a drive/position assembly516″ is positioned along a circumference of the ball 504 such that theorientation of the wheel set is orthogonally disposed with respect tothe orientation of the wheel sets of the x and y axis assemblies (inFIG. 10A for simplicity only one wheel set 516 is shown exemplifying theorientation of the x and y axis assemblies). The z-axis drive/positionassembly 516″ is preferably configured with a complementary slaveassembly 520″ disposed along an axis that is perpendicular to an axisalong which the drive/position assembly 516″ is disposed. Although thefunctionality of a two dimensional implementation is describedhereinafter for ease of explanation, it will be appreciated that az-axis drive/position assembly and complementary slave assembly canreadily be implemented in a user interface device that is responsive inthree dimensions.

Referring now to FIGS. 11 and 12, the drive/position assemblies 516 andcomplementary slave assemblies 520 are configured with the ball 504 (notshown in FIGS. 11 and 12), as a user interface device 500 in a systemthat includes an electronic device or computer system 528 with a screen530 on which a cursor is positioned on a screen display or graphicaluser interface, as known in the art. The computer to which the userinterface device 500 is connected has an operating system and is capableof running various application programs which result in various screendisplays on which the cursor is manipulated using the user interfacedevice 500.

The user interface device 500 includes at least a first and seconddrive/position assembly 516, 516′ each with a servo motor 534 andencoder 536 and associated first and second complementary slaveassemblies 520, 520′ for respectively sensing y-axis and x-axis ballmovement to be translated into a cursor position on the display. In thisillustrative embodiment, each of the servo motors in the drive/positionassemblies is connected in series with its respective complementaryslave assembly motor which results in the motor pairs seeing the samecurrent. In the present application each servo motor 534 is not used asa motor per se, but rather as a torque controller. The motor never runsat a significant amount of its rated revolutions per minute, butoperates normally in this application in a stalled or semi-stalledstate. The preferred motor, as discussed hereinabove, has an installedencoder 536. The encoder 536 is matched to the motor and the motorapplication as appreciated by one of ordinary skill in the art.

The computer or electronic device 528, as known in the art, isconfigured to accept an interface board 532 which includes themechanisms required to electronically interface the user interfacedevice 500 to the computer system 528 and display 530. The interfaceboard 532 is typically configured to reside in an I/O slot of thecomputer 528 and includes a microprocessor 538 which communicates withthe computer 528 via a serial communication channel 540. In theembodiment illustrated in FIG. 11, the interface board 532 comprises acounter 542 associated with each encoder 536. Each counter 542 receivesservo motor position information from the encoder 118. Themicroprocessor 538, such as a Motorola 6809, receives a position countfrom each counter 542 providing an indication of position of each servomotor relative to an index. The count provided by the counter will beincremented or decremented depending on the direction of the change ofposition of the servo motor relative to the index, which is indicativeof a change in position of the ball and the cursor on the screendisplay.

The microprocessor 538 accesses torque profile information from astorage mechanism as a function of the coordinate position indicated viathe encoders, i.e. x-axis position and y-axis position. The storagemechanism can be internal to the microprocessor and/or external in theform of additional torque profile storage 545 (such as EEPROM, ROM,disk, CDROM etc). The torque profile information provides an indicationof a torque or force to be applied by/to the motor. The torque is afunction of the position of the cursor on the screen and a function ofthe particular screen display on which the cursor is being manipulated.

As in the embodiments described hereinbefore, the torque value, in thiscase a value for each motor or axis, is output from the storagemechanism as a digital signal which is converted by a latchable digitalto analog converter (D/A) 544 to an analog voltage. As a voltage appliedto the motor would result in a proportional motor speed, the analogvoltage is related to motor torque by generating a proportional motorcurrent using a power driver or amplifier 546 (for each motor). Thetorque related current is applied to the motor(s) 516, 516′, 520, 520′,to present the desired torque which imparts the desired tactileresponsiveness to the ball 504.

The computer 528 runs an application, or several applications, whichrequires and defines particular torque profiles for the user interfacedevice 500. Each screen display of an application running on thecomputer has torque profile information associated with that particularscreen display to effect a corresponding particular tactileresponsiveness for that screen display. The torque profile informationwhich is being processed is stored in the microprocessor. Additionaltorque profile information which is not immediately required for arunning screen display can be stored in external memory associated withthe microprocessor 545. The torque profile information represents aspatial array that indicates the relationship of motor currents ortorques as a function of position parameters for each axis present inthe embodiment. In this illustrative embodiment the array must containtorque information for x and y axis motor pairs as a function of the xand y coordinate position of the cursor on the particular screendisplay(s).

Preferably, a large volume of torque profile information defining thetactile responsiveness of numerous screen displays of an applicationsoftware package or an operating system is stored in a databaseassociated with a particular application or applications that run on thecomputer. As illustrated in FIG. 12, the computer typically runs anoperating system or main application 550 which is stored on someexternal storage medium such as a disk or CD ROM and paged ortransferred to the computer's main memory as the application code isrunning.

A database of torque profiles 552, as part of an application runningunder the operating system or with the application 550, defines thetactile responsiveness of the user interface device based on the screendisplays of the application(s). The torque profile information 552 isaccessible to the application(s) or operating system(s) via theapplication's application program interface (API), as known in the art.The torque profiles relate the tactile responsiveness of the userinterface device 500 to the graphical user interface(s) or screendisplay(s) of the application 550, as respective torque profiles aredownloaded or made available to the microprocessor 538 on the interfaceboard 532 to generate the appropriate digital signals in response to theposition information received from the encoders, as discussedhereinbefore.

A user interface device driver 554 facilitates communication between themicroprocessor 538 on the interface board 532 for the user interfacedevice 500, and the host computer 528. The microprocessor computescoordinates for a change of cursor position by processing theinformation received from the encoders and information known about theoriginal position of the cursor as provided by the host computer overthe serial channel 540. The driver communicates the information relatedto cursor position to and from the host computer which effects actualpositioning of the cursor. In the present embodiment, the driver 554 isgeneric to the user interface device 500 and is modified slightly from amouse or trackball I/O device driver as known in the art, in that thedriver 554, through an interface to the torque profile information 552and application software 550 coordinates the downloading of appropriatetorque profile information to the microprocessor based on indicationsfrom the application 550 as to the appropriate torque profile.

Based on the application being run on the host 528, the driver 554running on the host communicates relevant torque profile information tothe microprocessor 538. The driver also communicates information to themicroprocessor regarding the present position of the cursor on thedisplay screen of the host 528. In response to the coordinateinformation of the cursor on the display screen, the microprocessor 538generates digital information corresponding to the appropriate torquerelative to the position of the cursor on the screen, in accordance withthe relevant torque-position profile for that screen display. The D/A544 for each axis receives the digital torque information and producesthe appropriate analog signal to the power driver(s) 546 which generatea current to apply the positive or negative torque to the motorsresulting in the applicable tactile responsiveness of the ball 504.

When the trackball or mouse is moved to effect a movement of the cursoron the display screen 530, each encoder 536 sends position informationto the microprocessor 538. Position information in this illustrativeembodiment includes an indication of the direction and number of stepsthe encoder is changed in response to actuation of the associated wheelset in contact with the manually manipulated ball 504. Themicroprocessor 538 receives the magnitude and direction information andtracks the position in the spatial array of relevant torque profileinformation to determine the appropriate torque corresponding to theposition information received. The microprocessor 538 communicates theposition information to the user interface device driver which effects achange in the position of the cursor by communicating with the computeras is appreciated by those of skill in the art. The microprocessor 538also conveys torque information to the servo motors, via the D/As andpower drivers as described, to effect appropriate tactile responsivenessbased on cursor position within the screen display of the particularapplication and torque-position information.

The torque-position information stored and made accessible to themicroprocessor for implementing tactile responsiveness of the userinterface device according to the invention can be used to implementvarious tactile responses as a function of position of the cursor on thescreen display. Boundaries for cursor containment and restricted displayareas can be implemented by effecting stops using maximized motortorque. Among other responsiveness, tactile “hills” and “troughs” can beimplemented to define tactile contours of a graphical user interfacesuch as illustrated in FIGS. 13A-13D. In this particular example of anapplication, a graphical user interface includes a header showing acommand options banner as it appears on the display screen (FIGS. 13 aand 13B).

The command options banner is a button bar on which a cursor ispositioned by a user using a user interface device to point and click toeffect certain functionality. The various commands, i.e. “File,”Options,” “Window,” “Help” can be delineated by tactile boundariesaccording to the invention, so that the proper positioning of the cursorwithin an appropriate area to click and invoke the command can be easilydone and can be tactilely perceptible. With or without fine motor skillsor vision, the user actuates the user interface device according to theinvention and feels the position of the cursor on the screen display.Tactile boundaries are programmed, as discussed hereinbefore and asillustrated in FIGS. 13C and 13D, so that higher resistance is perceivedat the boundaries with little or no resistance felt when the cursor isproperly positioned.

Moving the cursor vertically on the screen toward the button bar theuser will perceive neutral or no resistance in the unrestricted area560. A sharp increase in torque will be felt as the lower boundary 562of the button bar is encountered. When the cursor is actuated to aposition between the lower boundary and an upper boundary, i.e. in atrough 564, no resistance is perceived. As the upper boundary 566 isapproached the torque increases and as the absolute boundary of thescreen is encountered increased torque effects a perceptible stop 568.It should be noted that positive and negative torques can be generatedaccording to the invention so that the user interface device includes atendency to urge the cursor into a position centered within theboundaries.

Likewise, when the user interface device is actuated to move the cursorhorizontally along the button bar, as illustrated in FIG. 13D,boundaries are established that urge the cursor into the proper positionto activate the desired menu selection.

It should be appreciated that in addition to boundaries formed by hillsand troughs and walls, the tactile responsiveness of the user interfacedevice according to the invention can be used to implement “texturing”that is tactilely perceptible. Slight increases in torque can beprogrammed at selected distances with lesser torque therebetween suchthat a feeling of bumpiness can be implemented as the cursor is actuatedacross a screen display. Elasticity, in the form of increasing torque toa point of reverse torque, can be implemented to simulate perceivedstretching or resiliency. Furthermore, given the active nature of thetorque assistance capability of the motor(s) in the user interfacedevice according to the invention, motion assistance can be effected tomake the device roll off of a bump or hill without manual assistance(such an application is especially useful where a user may not have finemotor skills).

The EEPROM resident tables or arrays of torque profile information willnot change until a new set of profiles is programmed, i.e down loaded,into the microprocessor accessible memory. Thus, when the system ispowered down and subsequently powered up, the previously selected torqueprofile is resident and available as a default mode for the respectiveactuators, unless a particular default state is desired and provided.

Although the invention is described hereinbefore with a singular screendisplay, it will be appreciated by those of ordinary skill in the artthat the torque position information can be structured in a manner suchthat screens can be nested, and their corresponding profiles nested sothat invoking a new screen from a present screen invokes a correspondingnew set of torque position information.

It should be appreciated that although tables or arrays of torqueprofile information are discussed in the illustrative embodiment hereinfor relating cursor screen position with tactile responsiveness of theuser interface device, torque values may be calculated “on the fly” forparticular screen displays rather than storing values associated withparticular positions. Additionally, rather than having the userinterface device providing information regarding position and changesthereof, torque values may be associated with particular cursorlocations on a particular screen display such that the screen generatesthe position information which is processed according to the inventionto provide resultant tactile responsiveness.

In the embodiment where a slave motor is connected in series, the slavemotor will see the same current as the motor with which it is connectedin series. In such a master/slave motor pair, the motors should bevirtually identical motors to effect smoothness of rotation of the ballor tracking element. However, in order to minimize cost of a systemaccording to the invention, it will be appreciated that it may bepreferable to exclude the slave motor in favor of a passive bearing.

The description of the invention hereinbefore relates to a trackball,but it will be appreciated that tactile responsiveness according to theinvention can be implemented in various other user interface devices,including a mouse, joysticks and other devices requiring actuation andbenefitting from the tactile responsiveness as a function of position.Further, while “a cursor” is manipulated in the embodiment describedherein, that term is used generically to describe something manipulatedin a user interface of an electronic device, and it should beappreciated that any of various symbols and interface or displayresident entities can be manipulated with tactile responsiveness, suchas cursors, icons, windows, menus, or the like.

While various embodiments of the invention illustrated herein describe amain CPU to execute an application program requiring and defining torqueprofiles for an actuator, and a separate 6809 microprocessorimplementing firmware specifying torque-position relationships, one ofordinary skill in the art will appreciate that torque-positionrelationships can be implemented in the application CPU without themicroprocessor or via numerous other microcontrollers. Further, while itis described that the torque profiles are in EEPROM accessible to themicroprocessor it will be appreciated that the torque profiles can bestored in microprocessor resident or other storage means, such as ROM,RAM, PALs and the like, and accessed accordingly to implement thedesired tactile responsiveness in an actuator.

Although the invention has been shown and described with respect toexemplary embodiments thereof, various other changes, additions andomissions in the form and detail thereof may be made therein withoutdeparting from the spirit and scope of the invention.

1. A device, comprising: an actuator having a user interface, theactuator being configured to output haptic feedback to the userinterface, the haptic feedback including a modulating force simulating aplurality of electronically defined stop positions; a data storagecomponent configured to store torque data associated with the hapticfeedback simulating a plurality of electronically defined stoppositions, the torque data being associated with a force profiles, thetorque data being provided by a host computer based on a selection of atleast one force profile from the plurality of force profiles based on ahost software application running on the host computer; a sensor coupledto the user interface, the sensor being configured to send positioninformation associated with a position of the user interface to the hostcomputer; and a local controller coupled to the data storage componentand the actuator, the local controller being configured to be incommunication with the host computer, the local controller beingconfigured to receive position data from the host software applicationof the host computer, the local controller being configured to send acontrol signal to the actuator based on the position data and the torquedata to simulate the plurality of electronically defined stop positions.2. The device of claim 1, the actuator being a first actuator, thedevice further comprising a second actuator, the local controller beingconfigured to output the control signal to the first and secondactuators, the first and second actuators configured to produce thehaptic feedback.
 3. The device of claim 1, wherein the data storagecomponent is configured to receive and store a plurality of torquevalues from the host computer.
 4. The device of claim 3, wherein each ofthe torque values is associated with a different tactile sensation. 5.The device of claim 1, wherein the data storage component is external tothe local controller.
 6. The device of claim 1, wherein the data storagecomponent is resident on the local controller.
 7. A device, comprising:a user interface, the user interface being configured to provide hapticfeedback simulating a plurality of electronically defined stop positionsbased on a plurality of torque data values associated with a processorexecutable application, the haptic feedback simulating a plurality ofelectronically defined stop positions being associated with a pluralityof force output profiles, each of the plurality of force output profilesbeing uniquely associated with a torque data value from the plurality oftorque data values; a local data storage component configured to storethe plurality of torque data values, the plurality of torque data valuesbeing provided by a host computer based on a selection of a force outputprofile from the plurality of force output profiles based on theprocessor executable application; a sensor coupled to the userinterface, the sensor being configured to send a position signalassociated with a position of the user interface to the host computer;and a local controller coupled to the local data storage component andthe sensor, the local controller configured to receive positioninformation from the host computer, the local controller beingconfigured to control the haptic feedback simulating a plurality ofelectronically defined stop positions in response to the positioninformation and based on the plurality of torque data values.
 8. Thedevice of claim 7, wherein the user interface is at least a portion ofan actuator, the actuator being configured to provide the hapticfeedback.
 9. The device of claim 7, wherein the data storage componentis external to the local controller.
 10. The device of claim 7, whereinthe data storage component is resident on the local controller.
 11. Thedevice of claim 7, wherein the local data storage component isconfigured to receive data from a remote processor.
 12. A method,comprising: receiving a position signal at a local controller, theposition signal being based on at least one of a position and a movementof a user interface; generating a control signal based on torque dataand the position signal, the torque data being provided to the localmemory device by a host computer based on a selection of a torqueprofile associated with a computer program running on the host computer;and transmitting the control signal to the user interface to outputhaptic feedback simulating a plurality of electronically defined stoppositions at the user interface.
 13. The method of claim 12, wherein thetorque data includes a plurality of data values, each data value fromthe plurality of data values being associated with different tactilesensations of the haptic feedback.
 14. The method of claim 12, furthercomprising: receiving at a local memory device the torque data from thehost computer, the torque data including an input signal identifying thecomputer program running on the host computer.